﻿$(document).ready(function(e) {
	var dvrCount=0;
	var time=new Date();
	$('#loginTime').text(time.getHours()+':'+ time.getMinutes()+':'+time.getSeconds());
	
	////each start
	$("table tr").each(function(index, element) {
		if(index>0)
		{
			dvrCount++;
			var $dns=$(element).children('td:eq(1)').text();
			var $ip=$(element).children('td:eq(2)').text();
			var $port=$(element).children('td:eq(3)').text();
			//获取表格中的时间信息
			var onlineTime=$(element).children('td:eq(5)').text();
			var $dvrAddr=$(element).children('td:eq(6)').text();
			var dvr=new DvrInfo($dns,$ip,$port,$dvrAddr);
			
			dvr.AddDnsHref($(element).children('td:eq(1)'));
			dvr.AddIpHref($(element).children('td:eq(2)'));
			
			dvr.IsOnline($(element).children('td:eq(9)'),onlineTime,10);
		}
    });
	$('#dvrCount').text(dvrCount);
	//////each end;
	
	///对话框初始化。
	$('#modifyDlg').dialog({
		autoOpen: false,
		width: 350,
		modal:true,
		draggable:false,
		buttons: {
			"确定": function(){
				var dvrStr=$('#dvrAddr').val();
				var dnsStr=$('#newDns').val();
				if(dvrStr=="")
				{
					alert('修改的域名不能为空！');
				}
				else
				{
					var modifyinfo=new ModifyInfo(dnsStr,dvrStr);
					modifyinfo.SetDnsDvrAddrToDB();
				
					$g_dns.html("");
					var dnsStr1=$('#newDns').val()+'.ptdvr.com';
					var href="<a href='http://"+dnsStr1+":"+$g_portStr+"' target='_blank'>"+dnsStr1+"</a>";
					$g_dns.html(href);
				
					$g_dvrAddr.text("");
					$g_dvrAddr.text(dvrStr);
				//$dns.text($('#newDns').val()+'.ptdvr.com');
			    	$(this).dialog("close"); 
				}
			}, 
		"取消": function(){ 
		    $(this).dialog("close");
		    }
		}
	});
	
	////点出修改时的事件
	$('td:contains(修改)').click(function(e) {
		if(e.target.type!=undefined)
		{
			//没有加入var定义，表明是全局变量。
			$g_dns=$($(e.target).parent().siblings()[1]);
			$g_dvrAddr=$($(e.target).parent().siblings()[6]);
			$g_portStr=$($(e.target).parent().siblings()[3]).text();
			g_macStr=$($(e.target).parent().siblings()[4]).text();
			g_ipStr=$($(e.target).parent().siblings()[2]).text();
			var dns=$g_dns.text();
		    var dvrAddr=$g_dvrAddr.text();
		
	    	var modifydlg=new ModifyInfo(dns,dvrAddr);
		//$('#oldDns').text(dns);
		    modifydlg.SetDNS($('#oldDns'));
		    modifydlg.SetDVRAddr($('#oldDvrAddr'));
			
		    $('#modifyDlg').dialog('open');
		}
    });
	////
	
	///点击删除事件
	$('td:contains(删除)').click(function(e) {
		if(e.target.type!=undefined)
		{
			if(confirm('您确认删除吗？')==true)
			{
			$mac=g_macStr=$($(e.target).parent().siblings()[4]).text();
			
			$.get('maindel.ashx',{mac:$mac,time:Math.random()},function(data){
				if(data=='Admin')
				{
					$(e.target).parent().parent().remove();
					//e.target.deleteRow(e.target.index);
				}
				else 
				{
					alert('您不是管理员没有权限删除用户！');
				}
			});
		}
		}
    });
	///完成删除事件
});

//修改DVR域名和所在地函数
function ModifyInfo(dns,dvrAddr)
{
	this.dns=dns;
	this.dvrAddr=dvrAddr;
	
	if(typeof ModifyInfo._init=="undefined")
	{
		ModifyInfo.prototype.SetDNS=function($dns)
		{
			$dns.text(this.dns);
		}
		
		ModifyInfo.prototype.SetDVRAddr=function($dvrAddr)
		{
			$dvrAddr.text(this.dvrAddr);
		}
		//新设定的DNS信息。设定用户设置的DNS和DVR所在信息到数据库中。
		ModifyInfo.prototype.SetDnsDvrAddrToDB=function()
		{
			//1：判断DNS是否在数据库中存在。这样有利于共享一个ashx文件。2:写入成功
			var dns=this.dns;
			var dvrAddr=this.dvrAddr;
			$.get("main_modify.ashx",{dns:dns,flag:1},function(data){
				//如果在数据库中存则不能写入DB，否则，判断dvrAddrStr长度是否大于10
				//如果不大于10就可以写入。
				if(data==1 && dvrAddr.length<10 ) 
				{
					$.get("main_modify.ashx",{dns:dns,dvrAddr:encodeURI(dvrAddr),mac:g_macStr,ip:g_ipStr,flag:2},function(data){
						if(data==2)
						{
							alert('修改成功');
						}
						else 
						{
							alert('DVR所在地修改失败');
							//写入异常
						}
					});
				}
				else 
				{
					alert('您修改的DNS地址已存在！');
					//可能存在或者串大于10
				}
			});
		}
		ModifyInfo._init=true;
	}
	
}


//定义一个类
function DvrInfo(dns,ip,port,dvrAddr){
	//构造函数部分
	this.m_dns=dns;
	this.m_ip=ip;
	this.m_port=port;
	this.m_dvrAddr=dvrAddr;
	
	//成员方法部分
	if(typeof DvrInfo._initialized=="undefined")
	{
		////公有成员方法
		//为域名节点添加链接
		DvrInfo.prototype.AddDnsHref=function($dns)
		{
			var href="<a href='http://"+this.m_dns+":"+this.m_port+"' target='_blank'>"+this.m_dns+"</a>";
			$dns.html("");
			$dns.html(href);
		}
		
		//为IP栏目添加链接
		DvrInfo.prototype.AddIpHref=function($ip)
		{
			var href="<a href='http://"+this.m_ip+":"+this.m_port+"' target='_blank'>"+this.m_ip+"</a>";
			$ip.html("");
			$ip.html(href);
		}
		
		//设定离线与在线的判断        
		//$state:要设定的状态单元格 $refreshTime:取到的更新时间单元格的时间
		//time:间隔的时间差>time离线，<time在线
		DvrInfo.prototype.IsOnline=function($state,$refreshTime,time)
		{
			var differTime=DateDiff($refreshTime);
			if(differTime>time)
			{
				$state.text("");
				$state.text("离线");
                                $('td:contains(离线)').css({color:'red',"font-weight":'bold'});
                          
			}
			else 
			{
				$state.text("");
				$state.text("在线");
                $('td:contains(在线)').css({color:'black',"font-weight":'bold'});
			}
		}
		///////////////////////////公有成员方法end;
		
		///////私有成员方法。start
		//时间转换函数将类似于2012-09-13 14:25:30这样的时间格式转化为2012/09/13得到
		//一个自己1970/1/1到现在时间毫秒数且与客户端时间进差值。
		//定义一个私有的成员变量。在类中访问不用实例化。
		function DateDiff($time)
		{
			var refreshTime=new Date(Date.parse($time.replace(/-/g,"/")));
			var sysTime=new Date();
			var diffTime=(sysTime.getTime()-refreshTime.getTime())/60000;
			return diffTime;
		}
		///////////私有成员方法end
		DvrInfo._initialized=true;
	}
}
